package everydaydo;

import java.util.ArrayList;
import java.util.List;

public class ClimbStairs {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		List<Integer> Steps = new ArrayList<Integer>();
		Climb(Steps, 6);

	}

	public static void Climb(List<Integer> Steps,int length){
		if(length==1){
			Steps.add(1);
			System.out.println(Steps.toString());
		}else if(length==2){
			List<Integer> temp = new ArrayList<Integer>();
			temp.addAll(Steps);
			Steps.add(1);
			Steps.add(1);
			System.out.println(Steps.toString());
			temp.add(2);
			System.out.println(temp.toString());
			
		}else if(length==3){
			List<Integer> temp1 = new ArrayList<Integer>();
			temp1.addAll(Steps);
			List<Integer> temp2 = new ArrayList<Integer>();
			temp2.addAll(Steps);
			List<Integer> temp3 = new ArrayList<Integer>();
			temp3.addAll(Steps);
			Steps.add(1);
			Steps.add(1);
			Steps.add(1);
			System.out.println(Steps.toString());
			temp1.add(2);
			temp1.add(1);
			System.out.println(temp1.toString());
			temp2.add(1);
			temp2.add(2);
			System.out.println(temp2.toString());
			temp3.add(3);
			System.out.println(temp3.toString());
		}else{
			List<Integer> temp1 = new ArrayList<Integer>();
			temp1.addAll(Steps);
			List<Integer> temp2 = new ArrayList<Integer>();
			temp2.addAll(Steps);
			List<Integer> temp3 = new ArrayList<Integer>();
			temp3.addAll(Steps);
			temp1.add(1);
			Climb(temp1,length-1);
			temp2.add(2);
			Climb(temp2,length-2);
			temp3.add(3);
			Climb(temp3,length-3);
		}
	}
}
